﻿using System;
namespace mscook.core.repositories
{
    public interface IResourceTypeRepository : IRepository<mscook.core.domain.ResourceType>
    {
        System.Collections.Generic.IList<mscook.core.domain.ResourceType> GetTypeByResource(mscook.core.domain.PurchasedCategory category, string resourceId);
        System.Collections.Generic.IList<string> GetResourceByType(mscook.core.domain.PurchasedCategory category, string typeId);
        System.Collections.Generic.IList<mscook.core.domain.ResourceType> GetParentResourceTypeByLimit(string category, int start, int limit, out long total);
        System.Collections.Generic.IList<mscook.core.domain.ResourceType> GetAllParentResourceType(string category);
        System.Collections.Generic.IList<mscook.core.domain.ResourceType> GetResourceByParent(string parentId);
        System.Collections.Generic.IList<mscook.core.domain.ResourceType> GetHotChildTypesByLimit(string category, int start, int limit, out long total);
        System.Collections.Generic.IList<mscook.core.domain.ResourceType> GetTypeByResource(string resourceId);
        System.Collections.Generic.IList<string> GetExitTypeIds(string resourceId);
        System.Collections.Generic.IList<mscook.core.domain.ResourceType> GetChildTypesByLimit(string category, int start, int limit, out long total);
        System.Collections.Generic.IList<mscook.core.domain.ResourceType> GetAllChildResourceType(string category);
        System.Collections.Generic.IList<string> GetResourceByTypes(mscook.core.domain.PurchasedCategory category, System.Collections.Generic.IList<string> typeId);
        System.Collections.Generic.IList<mscook.core.domain.ResourceType> GetTypeByCategory(mscook.core.domain.PurchasedCategory category);
        System.Collections.Generic.IList<mscook.core.domain.ResourceType> GetParentResourceTypeByLimit(string category, int start, int limit, out long total, System.Linq.Expressions.Expression<Func<mscook.core.domain.ResourceType, bool>> expression);
    }
}
